-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Load Flexibility measure #1259
base: resstock-args-refactor
Are you sure you want to change the base?
Conversation
|
||
|
||
def modify_setpoints(runner, setpoints: HVACSetpoints): | ||
pass |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@yingli-NREL Please implement this function.
Glad this came up in the ResStock development meeting! A couple thoughts:
|
This is the measure Jeff is referring to: NREL/openstudio-load-flexibility-measures-gem#57 |
Thank you both for the comments. I looked at Joe's measure, and the measure seemed more tuned to things like dishwasher. The measure will zero out the schedule during the peak period, whereas for HVAC setpoint, we want to add offsets. There was another measure which seems more fit for setpiont: https://github.com/NREL/openstudio-load-flexibility-measures-gem/tree/develop/lib/measures/ShiftScheduleByType.
Good point about not shifting on weekends - we can definitely expose an argument to make this optional. For the metrics, yes this is important. The result of this work will feed into DR-Path that LBNL is working on and based on the information provided to me by @trynthink, they are interested in:
I think the snapback issue you mention can factor into the "maintaining acceptable service" above. Thanks for the comment on WH flexibility - this is quite timely since we will soon start designing its input. |
Yeah I should have been more clear: Joe's measure is in fact for adjusting clothes washer, dishwasher, etc. I know that's beyond what you're currently considering, and I'm skeptical that there'll be a ton of potential in appliances that you can schedule like this, but behavioral changes are more likely and potentially something you'd ultimately want to consider for a load flexibility measure. I just wanted to point out it exists, up to you if you want to integrate it here. Thanks @shorowit for providing the link to the measure! I should have included that, and been more clear about what I was referring to. |
And then on the metrics @rajeee: does having some metrics be 5 minute imply you'll be running with shorter timesteps, and if so how short? Some of our HVAC-GEB changes require 1 minute timesteps, because cycling losses happen on a pretty short basis. It can take 2-3 minutes to get to full capacity for example. Obviously this comes with a big increase in run time, so it really depends on what your use case is, and how long a period you want to calculate these metrics for. I haven't seen many utilities trying to shift loads for periods less than a few hours, but maybe there is interest in 5 minute intervals. I might disagree that snapback is covered by the duration that service can be provided. It's more about what the power is the first few timesteps after the event ends and things go back to normal operation. As an example, if you have a 4 hour HVAC shift and the HVAC can't stay off for the full 4 hours and maintain setpoint, you'd still have a snapback at the end of the event when the setpoint goes back to normal. In my mind these metrics aren't all that directly related? When you get to WH lets definitely talk for a few minutes about what the inputs ought to be, and what kind of events you want to send. There's functionality for changing the WH operating mode for HPWHs (like making sure the elements never turn on during a shed event) that you may want to include along with setpoint changes. |
Sorry, I wasn't clear on my comment about snapback. I meant to say that there is a clause saying "while maintaining acceptable service", and I was saying we can push for "the load shifting shouldn't produce snapback" to be included as a part of that criteria. We haven't really considered 5 minutes load flexibility for now, and currently don't have plan on going below 15-minute timestamps. My initial thought on providing that metrics is that whatever the HVAC power happen to be in the peak period is available for 5 minute flexibility (this is with assumption that most HVAC can be safely turned off for 5 minutes). If the assumption is not correct, or we need to better account for snapback this might cause, we will need better plan. I am open to suggestion! |
Hmmm, I'm still a bit confused with respect to snapback. You'd expect that happen whenever you go back to the normal setpoints, I don't think there's an easy way around it. In heating, I suppose you could gradually increase the setpoint to avoid triggering the backup ER heat for an ASHP, but you'll still have to have some amount of increased load when you increase the setpoint, there's no real way to avoid that. What were you thinking when you were thinking of the criteria "the load shifting shouldn't produce snapback"? I think your 5 minute plan is pretty reasonable actually. Physically yes, you can turn the equipment off for 5 minutes, and in just 5 minutes you're safe from the space temperature changing so quickly that you'd get uncomfortable. Whether utilities/program administrators would actually send signals at 5 minute intervals I'm not sure, I've never seen that but I don't think that needs to change our approach from what you were thinking at all. |
Okay, let's go back a little bit. Set point offset based demand response can lead to snapback. And we need to try to prevent it as much as possible and also quantify it. I think we both are in agreement and on the same page regarding this. Currently, the metrics we are targeting to collect (the bullet points I listed in the beginning) doesn't explicitly talk about snapback. And I agree we should add metrics related to snapback. My point was that the listed bullet points (coming from LBNL) have a room in it for us to insert snapback metrics. That room is granted by the "while maintaining acceptable service" clause. We can argue that keeping snapback below a certain threshold is part of "maintaining acceptable service". Now onto how exactly can we limit snapback? Our initial thought is to do a random horizontal shifting of peak period window. So, some houses will start half-hour early and end half-hour early. Both the shifting length, and peak period window length is user input to the flexibility measure - though we wish to define good defaults. We are open to suggestion on quantifying the snapback effect. Maybe percent increase beyond the baseline for those hours?
Thanks for the confirmation. The other concern here is also the snapback. For the actual flexibility scenario we will simulate, we can calculate some metrics related to snapback. But for this ad hoc 5 minute flexibility, if we don't actually do the 5 minute simulation, how do we quantify the snapback, and how do we justify/promise that it won't be bad? |
@rajeee: Ahhh, I see what you mean with some amount of randomizing the end period as a way to reduce snapback. That's definitely something that can be done, and I'm definitely interested in looking into how much that helps. There's always going to be some amount of load increase as the event ends, but sure, you can smooth out the timing of when that increase happens. Now I feel like we're on the same page here. For the 5 minute peak, that's an interesting question. If we stick with 15 minute timesteps, during the timestep where the setpoint changes, you're likely at max power for the full timestep (especially now with a higher TCM), so it wouldn't be unreasonable to assume that the power during that 15 minute period is the same as it would be in a 5 minute period (because the equipment is running at 100% for the 15 minutes anyways). If we see cases where the setpoint returns to normal and the space temperature reaches the new setpoint in a single timestep, then we'd have to think about doing something more complicated here, but let's cross that bridge if and when we come to it. This is probably beyond the scope of what you're considering and what could be covered by the language from LBNL, but: want to give any thought to people opting out of events? I have evidence (from just a couple of utilities, not something that conclusive) that ~10% of people opt out of events, and that the longer the event is the more people opt out. I think I already showed you that but: |
For some of this, we may not need to do anything - we are generating the maximum potential for a given scenario, so, one can always account for opt-out rate in post-processing by using a simple multiplier. This doesn't take into account the reduced snapback with opt-out nor can it handle people progressively opting out as the event progresses as shown in your picture. It would be fun to model that - but probably way out of scope like you said! |
…nto load_flexibility
Pull Request Description
Load Flexibility measure for the buildings standard scenario project.
Related PRs
Checklist
Not all may apply:
openstudio tasks.rb update_measures
has been run